home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Rozne / HTTrack 3.40-2 / httrack-3.40-2.exe / {app} / src_win / WinHTTrack / inprogress.cpp < prev    next >
C/C++ Source or Header  |  2005-08-13  |  31KB  |  1,076 lines

  1. // inprogress.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Shell.h"
  6. #include "inprogress.h"
  7. #include "about.h"
  8. #include "iplog.h"
  9.  
  10. #include "NewProj.h"
  11. //#include "option.h"
  12.  
  13. /* Externe C */
  14. extern "C" {
  15.   #include "HTTrackInterface.h"
  16.   #include "htsbase.h"
  17.   #include "htscore.h"
  18. }
  19.  
  20. #include "Wid1.h"
  21. #include "EasyDropTarget.h"
  22.  
  23. #include "InfoUrl.h"
  24.  
  25. extern CNewProj* dialog0;
  26. extern CMainTab* maintab;
  27.  
  28. /*
  29. extern int INPROGRESS_LOCKED;
  30. */
  31. extern int termine_requested;
  32. extern int termine;
  33. extern int soft_term_requested;
  34. /*
  35. extern int INPROGRESS_LOCKED;
  36. extern int INREFRESH_LOCKED;
  37. */
  38. extern HICON httrack_icon;
  39. //extern int fexist(char*);
  40. //extern char* fconcat(char*,char*);
  41. //extern char choixdeb[3];
  42. // PATCH-->
  43. extern int termine;
  44.  
  45. // Helper
  46. extern LaunchHelp* HtsHelper;
  47.  
  48. // InfoUrl
  49. extern CInfoUrl* _Cinprogress_inst;
  50.  
  51. #ifdef _DEBUG
  52. #define new DEBUG_NEW
  53. #undef THIS_FILE
  54. static char THIS_FILE[] = __FILE__;
  55. #endif
  56.  
  57. // Refresh
  58. //extern int INFILLMEM_LOCKED;     // refresh mΘmoire en cours
  59. extern InpInfo SInfo;
  60. int inprogress_refresh();
  61.  
  62. // this app
  63. #include "Winhttrack.h"
  64. extern CWinHTTrackApp* this_app;
  65.  
  66.  
  67. // objet
  68. extern Cinprogress* inprogress;
  69.  
  70.  
  71. /* pour la fin */
  72. #include "DialogContainer.h"
  73. #include "splitter.h"
  74. extern CSplitterFrame* this_CSplitterFrame;
  75. #include "infoend.h"
  76. extern Cinfoend* this_Cinfoend;
  77.  
  78. /* Main WizTab frame */
  79. #include "WizTab.h"
  80. extern CWizTab* this_CWizTab;
  81. extern CWizTab* this_intCWizTab;
  82.  
  83. // Pour la fin
  84. char end_mirror_msg[8192]="";
  85.  
  86. extern t_StatsBuffer StatsBuffer[NStatsBuffer];
  87.  
  88.  
  89. /////////////////////////////////////////////////////////////////////////////
  90. // Cinprogress dialog
  91. IMPLEMENT_DYNCREATE(Cinprogress, CPropertyPage)
  92.  
  93.  
  94. Cinprogress::Cinprogress()
  95.     : CPropertyPage(Cinprogress::IDD)
  96. {
  97.   timer=0;
  98.   //{{AFX_DATA_INIT(Cinprogress)
  99.     m_inphide = FALSE;
  100.     //}}AFX_DATA_INIT
  101. }
  102.  
  103. void Cinprogress::DoDataExchange(CDataExchange* pDX)
  104. {
  105.     CPropertyPage::DoDataExchange(pDX);
  106.     //{{AFX_DATA_MAP(Cinprogress)
  107.     DDX_Control(pDX, IDC_nn9, m_nn9);
  108.     DDX_Control(pDX, IDC_nn8, m_nn8);
  109.     DDX_Control(pDX, IDC_nn7, m_nn7);
  110.     DDX_Control(pDX, IDC_nn6, m_nn6);
  111.     DDX_Control(pDX, IDC_nn5, m_nn5);
  112.     DDX_Control(pDX, IDC_nn4, m_nn4);
  113.     DDX_Control(pDX, IDC_nn3, m_nn3);
  114.     DDX_Control(pDX, IDC_nn2, m_nn2);
  115.     DDX_Control(pDX, IDC_nn13, m_nn13);
  116.     DDX_Control(pDX, IDC_nn12, m_nn12);
  117.     DDX_Control(pDX, IDC_nn11, m_nn11);
  118.     DDX_Control(pDX, IDC_nn10, m_nn10);
  119.     DDX_Control(pDX, IDC_nn1, m_nn1);
  120.     DDX_Control(pDX, IDC_nn0, m_nn0);
  121.     DDX_Control(pDX, IDC_nm13, m_nm13);
  122.     DDX_Control(pDX, IDC_nm12, m_nm12);
  123.     DDX_Control(pDX, IDC_nm11, m_nm11);
  124.     DDX_Control(pDX, IDC_nm10, m_nm10);
  125.     DDX_Control(pDX, IDC_nm9, m_nm9);
  126.     DDX_Control(pDX, IDC_nm8, m_nm8);
  127.     DDX_Control(pDX, IDC_nm7, m_nm7);
  128.     DDX_Control(pDX, IDC_nm6, m_nm6);
  129.     DDX_Control(pDX, IDC_nm5, m_nm5);
  130.     DDX_Control(pDX, IDC_nm4, m_nm4);
  131.     DDX_Control(pDX, IDC_nm3, m_nm3);
  132.     DDX_Control(pDX, IDC_nm2, m_nm2);
  133.     DDX_Control(pDX, IDC_nm1, m_nm1);
  134.     DDX_Control(pDX, IDC_nm0, m_nm0);
  135.     DDX_Control(pDX, IDC_st13, m_st13);
  136.     DDX_Control(pDX, IDC_st12, m_st12);
  137.     DDX_Control(pDX, IDC_st11, m_st11);
  138.     DDX_Control(pDX, IDC_st10, m_st10);
  139.     DDX_Control(pDX, IDC_st9, m_st9);
  140.     DDX_Control(pDX, IDC_st8, m_st8);
  141.     DDX_Control(pDX, IDC_st7, m_st7);
  142.     DDX_Control(pDX, IDC_st6, m_st6);
  143.     DDX_Control(pDX, IDC_st5, m_st5);
  144.     DDX_Control(pDX, IDC_st4, m_st4);
  145.     DDX_Control(pDX, IDC_st3, m_st3);
  146.     DDX_Control(pDX, IDC_st2, m_st2);
  147.     DDX_Control(pDX, IDC_st1, m_st1);
  148.     DDX_Control(pDX, IDC_st0, m_st0);
  149.     DDX_Control(pDX, IDC_sk0, m_sk0);
  150.     DDX_Control(pDX, IDC_sk1, m_sk1);
  151.     DDX_Control(pDX, IDC_sk2, m_sk2);
  152.     DDX_Control(pDX, IDC_sk3, m_sk3);
  153.     DDX_Control(pDX, IDC_sk4, m_sk4);
  154.     DDX_Control(pDX, IDC_sk5, m_sk5);
  155.     DDX_Control(pDX, IDC_sk6, m_sk6);
  156.     DDX_Control(pDX, IDC_sk7, m_sk7);
  157.     DDX_Control(pDX, IDC_sk8, m_sk8);
  158.     DDX_Control(pDX, IDC_sk9, m_sk9);
  159.     DDX_Control(pDX, IDC_sk10, m_sk10);
  160.     DDX_Control(pDX, IDC_sk11, m_sk11);
  161.     DDX_Control(pDX, IDC_sk12, m_sk12);
  162.     DDX_Control(pDX, IDC_sk13, m_sk13);
  163.     DDX_Control(pDX, IDC_sl0, m_sl0);
  164.     DDX_Control(pDX, IDC_sl1, m_sl1);
  165.     DDX_Control(pDX, IDC_sl2, m_sl2);
  166.     DDX_Control(pDX, IDC_sl3, m_sl3);
  167.     DDX_Control(pDX, IDC_sl4, m_sl4);
  168.     DDX_Control(pDX, IDC_sl5, m_sl5);
  169.     DDX_Control(pDX, IDC_sl6, m_sl6);
  170.     DDX_Control(pDX, IDC_sl7, m_sl7);
  171.     DDX_Control(pDX, IDC_sl8, m_sl8);
  172.     DDX_Control(pDX, IDC_sl9, m_sl9);
  173.     DDX_Control(pDX, IDC_sl10, m_sl10);
  174.     DDX_Control(pDX, IDC_sl11, m_sl11);
  175.     DDX_Control(pDX, IDC_sl12, m_sl12);
  176.     DDX_Control(pDX, IDC_sl13, m_sl13);
  177.     DDX_Check(pDX, IDC_inphide, m_inphide);
  178.     //}}AFX_DATA_MAP
  179. }
  180.  
  181. //const UINT wm_IcnRest = RegisterWindowMessage( FINDMSGSTRING );
  182. #define wm_CEasyDropTargetCallback (WM_USER + 2)
  183. #define wm_Timer (WM_USER + 3)
  184. #define wm_MirrorFinished (WM_USER + 4)
  185. BEGIN_MESSAGE_MAP(Cinprogress, CPropertyPage)
  186.     //{{AFX_MSG_MAP(Cinprogress)
  187.     ON_WM_CLOSE()
  188.     ON_BN_CLICKED(IDC_sk0, Onsk0)
  189.     ON_BN_CLICKED(IDC_sk1, Onsk1)
  190.     ON_BN_CLICKED(IDC_sk2, Onsk2)
  191.     ON_BN_CLICKED(IDC_sk3, Onsk3)
  192.     ON_BN_CLICKED(IDC_sk4, Onsk4)
  193.     ON_BN_CLICKED(IDC_sk5, Onsk5)
  194.     ON_BN_CLICKED(IDC_sk6, Onsk6)
  195.     ON_BN_CLICKED(IDC_sk7, Onsk7)
  196.     ON_BN_CLICKED(IDC_sk8, Onsk8)
  197.     ON_BN_CLICKED(IDC_sk9, Onsk9)
  198.     ON_BN_CLICKED(IDCANCEL, OnEscape)
  199.     ON_BN_CLICKED(IDC_ipabout, Onipabout)
  200.     ON_WM_DESTROY()
  201.     ON_WM_HELPINFO()
  202.     ON_BN_CLICKED(IDC_sk10, Onsk10)
  203.     ON_BN_CLICKED(IDC_sk11, Onsk11)
  204.     ON_BN_CLICKED(IDC_sk12, Onsk12)
  205.     ON_BN_CLICKED(IDC_sk13, Onsk13)
  206.     ON_WM_CREATE()
  207.     ON_BN_CLICKED(IDC_nm0, Onnm0)
  208.     ON_BN_CLICKED(IDC_nm1, Onnm1)
  209.     ON_BN_CLICKED(IDC_nm2, Onnm2)
  210.     ON_BN_CLICKED(IDC_nm3, Onnm3)
  211.     ON_BN_CLICKED(IDC_nm4, Onnm4)
  212.     ON_BN_CLICKED(IDC_nm5, Onnm5)
  213.     ON_BN_CLICKED(IDC_nm6, Onnm6)
  214.     ON_BN_CLICKED(IDC_nm7, Onnm7)
  215.     ON_BN_CLICKED(IDC_nm8, Onnm8)
  216.     ON_BN_CLICKED(IDC_nm9, Onnm9)
  217.     ON_BN_CLICKED(IDC_nm10, Onnm10)
  218.     ON_BN_CLICKED(IDC_nm11, Onnm11)
  219.     ON_BN_CLICKED(IDC_nm12, Onnm12)
  220.     ON_BN_CLICKED(IDC_nm13, Onnm13)
  221.     ON_BN_CLICKED(IDC_nn0, Onnm0)
  222.     ON_BN_CLICKED(IDC_nn1, Onnm1)
  223.     ON_BN_CLICKED(IDC_nn2, Onnm2)
  224.     ON_BN_CLICKED(IDC_nn3, Onnm3)
  225.     ON_BN_CLICKED(IDC_nn4, Onnm4)
  226.     ON_BN_CLICKED(IDC_nn5, Onnm5)
  227.     ON_BN_CLICKED(IDC_nn6, Onnm6)
  228.     ON_BN_CLICKED(IDC_nn7, Onnm7)
  229.     ON_BN_CLICKED(IDC_nn8, Onnm8)
  230.     ON_BN_CLICKED(IDC_nn9, Onnm9)
  231.     ON_BN_CLICKED(IDC_nn10, Onnm10)
  232.     ON_BN_CLICKED(IDC_nn11, Onnm11)
  233.     ON_BN_CLICKED(IDC_nn12, Onnm12)
  234.     ON_BN_CLICKED(IDC_nn13, Onnm13)
  235.   ON_BN_CLICKED(IDC_st0, Onst0)
  236.     ON_BN_CLICKED(IDC_st1, Onst1)
  237.     ON_BN_CLICKED(IDC_st2, Onst2)
  238.     ON_BN_CLICKED(IDC_st3, Onst3)
  239.     ON_BN_CLICKED(IDC_st4, Onst4)
  240.     ON_BN_CLICKED(IDC_st5, Onst5)
  241.     ON_BN_CLICKED(IDC_st6, Onst6)
  242.     ON_BN_CLICKED(IDC_st7, Onst7)
  243.     ON_BN_CLICKED(IDC_st8, Onst8)
  244.     ON_BN_CLICKED(IDC_st9, Onst9)
  245.     ON_BN_CLICKED(IDC_st10, Onst10)
  246.     ON_BN_CLICKED(IDC_st11, Onst11)
  247.     ON_BN_CLICKED(IDC_st12, Onst12)
  248.     ON_BN_CLICKED(IDC_st13, Onst13)
  249.     ON_WM_TIMER()
  250.     ON_BN_CLICKED(IDC_inphide, Oninphide)
  251.     //}}AFX_MSG_MAP
  252.   ON_MESSAGE( wm_CEasyDropTargetCallback, DragDropText)
  253.   ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  254.   ON_BN_CLICKED(ID_ABOUT,Onipabout)
  255.   ON_BN_CLICKED(ID_FILE_EXIT,OnStopall)
  256.   ON_BN_CLICKED(ID_LOG_VIEWLOG,OniplogLog)
  257.   ON_BN_CLICKED(ID_LOG_VIEWERRORLOG,OniplogErr)
  258.   ON_BN_CLICKED(ID_LOG_VIEWTRANSFERS,OnViewTransfers)
  259.   ON_BN_CLICKED(ID_FILE_PAUSE,OnPause)
  260.   ON_BN_CLICKED(ID_OPTIONS_MODIFY,OnModifyOpt)
  261.   ON_COMMAND(ID_HELP_FINDER,OnHelpInfo2)
  262.   ON_COMMAND(ID_HELP,OnHelpInfo2)
  263.     ON_COMMAND(ID_DEFAULT_HELP,OnHelpInfo2)
  264.   // Fin du miroir
  265.   ON_MESSAGE( wm_MirrorFinished, OnEndMirror)
  266.   END_MESSAGE_MAP()
  267. //ON_REGISTERED_MESSAGE( wm_IcnRest, IconRestore )
  268. /////////////////////////////////////////////////////////////////////////////
  269. // Cinprogress message handlers
  270.  
  271. void Cinprogress::OnClose() 
  272. {
  273.   OnStopall();
  274. }
  275.  
  276. void Cinprogress::Onsk0()  {
  277.   if (hts_is_parsing(-1)) {  // parsing
  278.     if (hts_is_testing())
  279.       hts_cancel_test();     // cancel test
  280.     /*else*/
  281.     hts_cancel_parsing();  // cancel parsing
  282.   } else
  283.     StatsBuffer_cancel(0);
  284. }
  285. void Cinprogress::Onsk1()  {
  286.   StatsBuffer_cancel(1);
  287. }
  288. void Cinprogress::Onsk2()  {
  289.   StatsBuffer_cancel(2);
  290. }
  291. void Cinprogress::Onsk3()  {
  292.   StatsBuffer_cancel(3);
  293. }
  294. void Cinprogress::Onsk4()  {
  295.   StatsBuffer_cancel(4);
  296. }
  297. void Cinprogress::Onsk5()  {
  298.   StatsBuffer_cancel(5);
  299. }
  300. void Cinprogress::Onsk6()  {
  301.   StatsBuffer_cancel(6);
  302. }
  303. void Cinprogress::Onsk7()  {
  304.   StatsBuffer_cancel(7);
  305. }
  306. void Cinprogress::Onsk8()  {
  307.   StatsBuffer_cancel(8);
  308. }
  309. void Cinprogress::Onsk9()  {
  310.   StatsBuffer_cancel(9);
  311. }
  312. void Cinprogress::Onsk10()  {
  313.   StatsBuffer_cancel(10);
  314. }
  315. void Cinprogress::Onsk11()  {
  316.   StatsBuffer_cancel(11);
  317. }
  318. void Cinprogress::Onsk12()  {
  319.   StatsBuffer_cancel(12);
  320. }
  321. void Cinprogress::Onsk13()  {
  322.   StatsBuffer_cancel(13);
  323. }
  324.  
  325.  
  326. // Capture des static
  327. void Cinprogress::Onnm0()  { StatsBuffer_info(0); }
  328. void Cinprogress::Onnm1()  { StatsBuffer_info(1); }
  329. void Cinprogress::Onnm2()  { StatsBuffer_info(2); }
  330. void Cinprogress::Onnm3()  { StatsBuffer_info(3); }
  331. void Cinprogress::Onnm4()  { StatsBuffer_info(4); }
  332. void Cinprogress::Onnm5()  { StatsBuffer_info(5); }
  333. void Cinprogress::Onnm6()  { StatsBuffer_info(6); }
  334. void Cinprogress::Onnm7()  { StatsBuffer_info(7); }
  335. void Cinprogress::Onnm8()  { StatsBuffer_info(8); }
  336. void Cinprogress::Onnm9()  { StatsBuffer_info(9); }
  337. void Cinprogress::Onnm10() { StatsBuffer_info(10); }
  338. void Cinprogress::Onnm11() { StatsBuffer_info(11); }
  339. void Cinprogress::Onnm12() { StatsBuffer_info(12); }
  340. void Cinprogress::Onnm13() { StatsBuffer_info(13); }
  341.  
  342. void Cinprogress::Onst0()  { StatsBuffer_info(0); }
  343. void Cinprogress::Onst1()  { StatsBuffer_info(1); }
  344. void Cinprogress::Onst2()  { StatsBuffer_info(2); }
  345. void Cinprogress::Onst3()  { StatsBuffer_info(3); }
  346. void Cinprogress::Onst4()  { StatsBuffer_info(4); }
  347. void Cinprogress::Onst5()  { StatsBuffer_info(5); }
  348. void Cinprogress::Onst6()  { StatsBuffer_info(6); }
  349. void Cinprogress::Onst7()  { StatsBuffer_info(7); }
  350. void Cinprogress::Onst8()  { StatsBuffer_info(8); }
  351. void Cinprogress::Onst9()  { StatsBuffer_info(9); }
  352. void Cinprogress::Onst10() { StatsBuffer_info(10); }
  353. void Cinprogress::Onst11() { StatsBuffer_info(11); }
  354. void Cinprogress::Onst12() { StatsBuffer_info(12); }
  355. void Cinprogress::Onst13() { StatsBuffer_info(13); }
  356.  
  357. // touche escape
  358. void Cinprogress::OnEscape() { 
  359.   OnStopall();
  360. }
  361.  
  362. void Cinprogress::OnStopall() 
  363. {
  364.   this_CSplitterFrame->CheckRestore();
  365.   if (AfxMessageBox(
  366.     LANG(LANG_H1 /*"Stop WinHTTrack?",
  367.            "Stopper WinHTTrack?"*/)
  368.     ,MB_OKCANCEL+MB_ICONQUESTION)==IDOK) {
  369.     hts_setpause(0);
  370.     if (soft_term_requested)
  371.       termine_requested=1;
  372.     else {
  373.       soft_term_requested=1;
  374.       hts_request_stop(0);
  375.     }
  376.   }
  377. }
  378.  
  379. void Cinprogress::Onipabout() 
  380. {
  381.   Cabout about;
  382.   about.DoModal();
  383. }
  384.  
  385. void Cinprogress::OnDestroy() 
  386. {
  387.   //((CWnd*)this)->m_pCtrlCont->OnUIActivate(NULL);
  388.   WHTT_LOCK();
  389.   termine_requested=1;    // quit!
  390.   WHTT_UNLOCK();
  391.   StopTimer();
  392.   if (BackAffLog)
  393.   if (form.m_hWnd)
  394.     form.EndDialog(IDOK);       // terminer!
  395.   this_CSplitterFrame->CheckRestore();
  396.   //Sleep(150);             // Θvite les problΦmes d'accΦs α m_hWnd juste avant le destroy
  397.   CPropertyPage::OnDestroy();
  398. }
  399.  
  400. BOOL Cinprogress::OnInitDialog() 
  401. {
  402.   m_inphide=TRUE;
  403.   UpdateData(false);      // force to call DoDataExchange
  404.   inprogress=this;
  405.  
  406.   memset(&SInfo, 0, sizeof(SInfo));
  407.  
  408.   BackAffLog=NULL;
  409.   strcpybuff(pathlog,"");
  410.  
  411.     //CPropertyPage::OnInitDialog();
  412.   EnableToolTips(true);     // TOOL TIPS
  413.  
  414.   // initialisation des champs pour les redraws en boucle
  415.   element[0][0]=&m_st0;
  416.   element[0][1]=&m_st1;
  417.   element[0][2]=&m_st2;
  418.   element[0][3]=&m_st3;
  419.   element[0][4]=&m_st4;
  420.   element[0][5]=&m_st5;
  421.   element[0][6]=&m_st6;
  422.   element[0][7]=&m_st7;
  423.   element[0][8]=&m_st8;
  424.   element[0][9]=&m_st9;
  425.   element[0][10]=&m_st10;
  426.   element[0][11]=&m_st11;
  427.   element[0][12]=&m_st12;
  428.   element[0][13]=&m_st13;
  429.  
  430.   element[1][0]=&m_nm0;
  431.   element[1][1]=&m_nm1;
  432.   element[1][2]=&m_nm2;
  433.   element[1][3]=&m_nm3;
  434.   element[1][4]=&m_nm4;
  435.   element[1][5]=&m_nm5;
  436.   element[1][6]=&m_nm6;
  437.   element[1][7]=&m_nm7;
  438.   element[1][8]=&m_nm8;
  439.   element[1][9]=&m_nm9;
  440.   element[1][10]=&m_nm10;
  441.   element[1][11]=&m_nm11;
  442.   element[1][12]=&m_nm12;
  443.   element[1][13]=&m_nm13;
  444.  
  445.   // rajoutΘ
  446.   element[4][0]=&m_nn0;
  447.   element[4][1]=&m_nn1;
  448.   element[4][2]=&m_nn2;
  449.   element[4][3]=&m_nn3;
  450.   element[4][4]=&m_nn4;
  451.   element[4][5]=&m_nn5;
  452.   element[4][6]=&m_nn6;
  453.   element[4][7]=&m_nn7;
  454.   element[4][8]=&m_nn8;
  455.   element[4][9]=&m_nn9;
  456.   element[4][10]=&m_nn10;
  457.   element[4][11]=&m_nn11;
  458.   element[4][12]=&m_nn12;
  459.   element[4][13]=&m_nn13;
  460.  
  461.   element[2][0]=&m_sl0;
  462.   element[2][1]=&m_sl1;
  463.   element[2][2]=&m_sl2;
  464.   element[2][3]=&m_sl3;
  465.   element[2][4]=&m_sl4;
  466.   element[2][5]=&m_sl5;
  467.   element[2][6]=&m_sl6;
  468.   element[2][7]=&m_sl7;
  469.   element[2][8]=&m_sl8;
  470.   element[2][9]=&m_sl9;
  471.   element[2][10]=&m_sl10;
  472.   element[2][11]=&m_sl11;
  473.   element[2][12]=&m_sl12;
  474.   element[2][13]=&m_sl13;
  475.  
  476.   element[3][0]=&m_sk0;
  477.   element[3][1]=&m_sk1;
  478.   element[3][2]=&m_sk2;
  479.   element[3][3]=&m_sk3;
  480.   element[3][4]=&m_sk4;
  481.   element[3][5]=&m_sk5;
  482.   element[3][6]=&m_sk6;
  483.   element[3][7]=&m_sk7;
  484.   element[3][8]=&m_sk8;
  485.   element[3][9]=&m_sk9;
  486.   element[3][10]=&m_sk10;
  487.   element[3][11]=&m_sk11;
  488.   element[3][12]=&m_sk12;
  489.   element[3][13]=&m_sk13;
  490.  
  491.   /* Init checkbox */
  492.   CMenu* m;
  493.   if (m = AfxGetApp()->GetMainWnd()->GetMenu()) {
  494.     m->CheckMenuItem(ID_FILE_PAUSE,MF_UNCHECKED);
  495.   }
  496.  
  497.   // Patcher l'interface pour les Franτais ;-)
  498.   if (LANG_T(-1)) {    // Patcher en franτais
  499.     //SetDlgItemTextCP(this, ,"");
  500.     SetDlgItemTextCP(this, IDC_STATIC_bytes,LANG(LANG_H8) /*"Octets sauvΘs:"*/);
  501.     SetDlgItemTextCP(this, IDC_STATIC_scanned,LANG(LANG_H9) /*"Liens parcourus:"*/);
  502.     SetDlgItemTextCP(this, IDC_STATIC_time,LANG(LANG_H10) /*"Temps:"*/);
  503.     SetDlgItemTextCP(this, IDC_STATIC_sockets,LANG(LANG_H11) /*"Connexions:"*/);
  504.     SetDlgItemTextCP(this, IDC_inphide,LANG(LANG_H12) /*"En cours:"*/);
  505.     SetDlgItemTextCP(this, IDC_STATIC_informations,LANG_H16);   
  506.     SetDlgItemTextCP(this, IDC_STATIC_written,LANG_H17);   
  507.     SetDlgItemTextCP(this, IDC_STATIC_updated,LANG_H18);   
  508.     SetDlgItemTextCP(this, IDC_STATIC_errors,LANG_H19);    
  509.     SetDlgItemTextCP(this, IDC_STATIC_inprog,LANG_H20);    
  510.     //SetDlgItemTextCP(this, IDC_hide,LANG(LANG_H13) /*"Cacher"*/);
  511.     SetDlgItemTextCP(this, IDC_STATIC_trate,LANG(LANG_H14) /*"Taux transfert"*/);
  512.     for(int i=0;i<NStatsBuffer;i++)
  513.       SetWindowTextCP(element[3][i], LANG(LANG_H15));
  514.   }
  515.  
  516.   /*
  517.   {
  518.     LOGFONT lf;
  519.     if (element[0][0]->GetFont()->GetLogFont(&lf)) {
  520.       CFont* fnt = new CFont();
  521.       if (fnt->CreateFont(lf.lfHeight,0,0,0,FW_DONTCARE,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"Fixedsys")) {
  522.         int i;
  523.         for (i=0;i<NStatsBuffer; i++) {
  524.           element[0][i]->SetFont(fnt,true);
  525.           element[1][i]->SetFont(fnt,true);
  526.         }
  527.       }
  528.     }
  529.   }
  530.   */
  531.  
  532.   SetIcon(httrack_icon,false);
  533.   SetIcon(httrack_icon,true);  
  534.  
  535.   if (ShellOptions != NULL && ShellOptions->choixdeb[0] == '!')
  536.     Oniplog(0);           // ouvrir log
  537.  
  538.   // Lancer timer!
  539.   StartTimer();
  540.  
  541.     return TRUE;  // return TRUE unless you set the focus to a control
  542.                   // EXCEPTION: OCX Property Pages should return FALSE
  543. }
  544.  
  545. void Cinprogress::StartTimer() {
  546.   if (!timer) {
  547.     timer=SetTimer(WM_TIMER,HTS_SLEEP_WIN,NULL);
  548.   }
  549. }
  550. void Cinprogress::StopTimer() {
  551.   if (timer) {
  552.     KillTimer(timer);
  553.     timer=0;
  554.   }
  555. }
  556.  
  557. UINT AffLog( LPVOID pP ) {
  558.   Cinprogress* inp = (Cinprogress*) pP;
  559.   if (inp != NULL) {
  560.     inp->form.m_iplog=(CString) "No log report";
  561.     inp->form.DoModal();
  562.     inp->BackAffLog = NULL;
  563.   }
  564.   return 0;    // thread completed successfully
  565. }
  566.  
  567. // log pour fichiers d'erreur et de log
  568. void Cinprogress::OniplogLog() {
  569.   Oniplog(0);
  570. }
  571. void Cinprogress::OniplogErr() {
  572.   Oniplog(1);
  573. }
  574.  
  575. void Cinprogress::Oniplog(int mode)  {
  576.   if (!BackAffLog) {  // pas encore lancΘ
  577.     strcpybuff(pathlog,dialog0->GetPath());
  578.     if (strlen(pathlog)>0)
  579.     if ((pathlog[strlen(pathlog)-1]!='/') && (pathlog[strlen(pathlog)-1]!='\\'))
  580.       strcatbuff(pathlog,"/");
  581.     // fichier log existe ou on est tΘlΘcommandΘ par un !
  582.     if ( (fexist(fconcat(pathlog,"hts-err.txt"))) || (fexist(fconcat(pathlog,"hts-log.txt"))) || (ShellOptions != NULL && ShellOptions->choixdeb[0]=='!') ) {
  583.       if (mode)
  584.         form.type_log=0;
  585.       else
  586.         form.type_log=1;
  587.       strcpybuff(form.pathlog,pathlog);
  588.       BackAffLog = AfxBeginThread(AffLog,this);
  589.     } else {
  590.       char s[1024];
  591.       sprintf(s,LANG(LANG_H2 /*"No log files in %s!","Aucun fichier d'audit dans %s!"*/),pathlog);
  592.       AfxMessageBox(s,MB_OK+MB_ICONEXCLAMATION);
  593.     }
  594.   }
  595. }
  596.  
  597. void Cinprogress::OnViewTransfers() 
  598. {
  599.   StatsBuffer_info(0);
  600. }
  601.  
  602. void Cinprogress::OnPause() 
  603. {
  604.   //int m;
  605.   //if (!hts_setpause(-1))
  606.   //  m=AfxMessageBox(LANG(LANG_H3 /*"Pause Transfer?","Placer le transfert sur pause?"*/),MB_OKCANCEL+MB_ICONQUESTION);
  607.   //else
  608.   //  m=IDOK;
  609.   //if (m==IDOK) {
  610.     hts_setpause(!hts_setpause(-1));
  611.     CMenu* m;
  612.     if (m = AfxGetApp()->GetMainWnd()->GetMenu()) {
  613.         if (hts_setpause(-1))
  614.             m->CheckMenuItem(ID_FILE_PAUSE,MF_CHECKED);
  615.         else
  616.             m->CheckMenuItem(ID_FILE_PAUSE,MF_UNCHECKED);
  617.     }
  618.   //}
  619. }
  620.  
  621. // modif options
  622. void Cinprogress::OnModifyOpt() 
  623. {
  624.   static httrackp opt;
  625.   //
  626.   maintab->m_option1.modify=
  627.     maintab->m_option2.modify=
  628.     maintab->m_option3.modify=
  629.     maintab->m_option7.modify=
  630.     maintab->m_option8.modify=
  631.     maintab->m_option9.modify=
  632.     maintab->m_option11.modify=
  633.     maintab->m_option10.modify=1;    // mode modification
  634.   if (maintab->DoModal() == IDOK) {
  635.     int n;
  636.     LLint ln;
  637.     float nf;
  638.  
  639.     // dΘvalider champs (non modifiΘs)
  640.     opt.maxsite = -1;
  641.     opt.maxfile_nonhtml = -1;
  642.     opt.maxfile_html = -1;
  643.     opt.maxsoc = -1;
  644.     opt.nearlink = -1;
  645.     opt.timeout = -1;
  646.     opt.rateout = -1;
  647.     opt.maxtime = -1;
  648.         opt.mms_maxtime = -1;
  649.     opt.maxrate = -1;
  650.     strcpybuff(opt.user_agent , "");
  651.     opt.retry = -1;
  652.     opt.hostcontrol = -1;
  653.     opt.errpage = -1;
  654.     opt.travel = -1;
  655.     opt.external = -1;
  656.     opt.delete_old=-1;
  657.     opt.parseall=-1;
  658.     opt.delete_old=-1;
  659.  
  660.     opt.travel=0;         // NOTE: NE SERA PRIS EN COMPTE QUE LE BIT 8
  661.     if(maintab->m_option1.m_testall)
  662.       opt.travel|=256;     
  663.  
  664.     if(maintab->m_option1.m_parseall)
  665.       opt.parseall=1;     
  666.     else
  667.       opt.parseall=0;     
  668.  
  669.     // near link,err page
  670.     if (maintab->m_option1.m_link)
  671.       opt.nearlink=1;
  672.     else
  673.       opt.nearlink=0;
  674.  
  675.     if (maintab->m_option2.m_errpage)
  676.       opt.errpage=1;
  677.     else
  678.       opt.errpage=0;
  679.  
  680.     if (maintab->m_option2.m_external)
  681.       opt.external=1;
  682.     else
  683.       opt.external=0;
  684.  
  685.     if (maintab->m_option2.m_nopurge)
  686.       opt.delete_old=1;
  687.     else
  688.       opt.delete_old=0;
  689.  
  690.  
  691.     // host control
  692.     {
  693.       int a=0;
  694.       if (maintab->m_option4.m_remt)
  695.         a+=1;
  696.       if (maintab->m_option4.m_rems)
  697.         a+=2;
  698.       opt.hostcontrol=a;
  699.     }
  700.  
  701.     // sockets
  702.     if (strcmp(maintab->m_option4.m_connexion,"")!=0) {
  703.       if (sscanf(maintab->m_option4.m_connexion,"%d",&n) == 1)
  704.         opt.maxsoc = n;
  705.     } 
  706.  
  707.     // maxfile_nonhtml
  708.     if (strcmp(maintab->m_option5.m_othermax,"")!=0) {
  709.       if (sscanf(maintab->m_option5.m_othermax,LLintP,&ln) == 1)
  710.         opt.maxfile_nonhtml = ln;
  711.     } else
  712.       opt.maxfile_nonhtml = -1;
  713.  
  714.     // maxfile_html
  715.     if (strcmp(maintab->m_option5.m_maxhtml,"")!=0) {
  716.       if (sscanf(maintab->m_option5.m_maxhtml,LLintP,&ln) == 1)
  717.         opt.maxfile_html = ln;
  718.     } else
  719.       opt.maxfile_html = -1;
  720.  
  721.     // maxsite
  722.     if (strcmp(maintab->m_option5.m_sizemax,"")!=0) {
  723.       if (sscanf(maintab->m_option5.m_sizemax,LLintP,&ln) == 1)
  724.         opt.maxsite = ln;
  725.     } else
  726.       opt.maxsite = -1;
  727.  
  728.     // fragment
  729.     if (strcmp(maintab->m_option5.m_pausebytes,"")!=0) {
  730.       if (sscanf(maintab->m_option5.m_pausebytes,LLintP,&ln) == 1)
  731.         opt.fragment = ln;
  732.     } else
  733.       opt.fragment = -1;
  734.  
  735.     // timeout
  736.     if (strcmp(maintab->m_option4.m_timeout,"")!=0) {
  737.       if (sscanf(maintab->m_option4.m_timeout,"%d",&n) == 1)
  738.         opt.timeout = n;
  739.     } else
  740.       opt.timeout = -1;
  741.  
  742.     // rateout
  743.     if (strcmp(maintab->m_option4.m_rate,"")!=0) {
  744.       if (sscanf(maintab->m_option4.m_rate,"%d",&n) == 1)
  745.         opt.rateout = n;
  746.     } else
  747.       opt.rateout = -1;
  748.  
  749.     // maxtime
  750.     if (strcmp(maintab->m_option5.m_maxtime,"")!=0) {
  751.       if (sscanf(maintab->m_option5.m_maxtime,"%d",&n) == 1)
  752.         opt.maxtime = n;
  753.     } else
  754.       opt.maxtime = -1;
  755.  
  756.     // maxrate
  757.     if (strcmp(maintab->m_option5.m_maxrate,"")!=0) {
  758.       if (sscanf(maintab->m_option5.m_maxrate,"%d",&n) == 1)
  759.         opt.maxrate = n;
  760.     } else
  761.       opt.maxrate = -1;
  762.  
  763.     // max. connect
  764.     if (strcmp(maintab->m_option5.m_maxconn,"")!=0) {
  765.       if (sscanf(maintab->m_option5.m_maxconn,"%f",&nf) == 1)
  766.         opt.maxconn = nf;
  767.     } else
  768.       opt.maxconn = -1;
  769.  
  770.     // retry
  771.     if (strcmp(maintab->m_option4.m_retry,"")!=0) {
  772.       if (sscanf(maintab->m_option4.m_retry,"%d",&n) == 1)
  773.         opt.retry = n;
  774.     } else
  775.       opt.retry = -1;
  776.  
  777.     // user_agent
  778.     if (strcmp(maintab->m_option6.m_user,"")!=0) {
  779.       strcpybuff(opt.user_agent,maintab->m_option6.m_user);
  780.     }
  781.  
  782.     hts_setopt(&opt);
  783.   }
  784.   maintab->m_option1.modify=
  785.     maintab->m_option2.modify=
  786.     maintab->m_option3.modify=
  787.     maintab->m_option7.modify=
  788.     maintab->m_option8.modify=
  789.     maintab->m_option9.modify=
  790.     maintab->m_option11.modify=
  791.     maintab->m_option10.modify=0;
  792. }
  793.  
  794.  
  795.  
  796. // canceller un lien manuellement
  797. void Cinprogress::StatsBuffer_cancel(int id) {
  798.   hts_cancel_file(StatsBuffer[id].url_sav);
  799. }
  800. void Cinprogress::StatsBuffer_info(int id) {
  801.   WHTT_LOCK();
  802.   if ((!termine) && (!termine_requested) && (inprogress->m_hWnd)) {
  803.     if (SInfo.stat_time>0) {
  804.       if (StatsBuffer[id].etat[0]) {
  805.         CInfoUrl box;
  806.         box.id=StatsBuffer[id].back;
  807.         _Cinprogress_inst=&box;
  808.         WHTT_UNLOCK();
  809.         {
  810.           box.DoModal();
  811.           _Cinprogress_inst=NULL;
  812.         }
  813.         return;
  814.       }
  815.     }
  816.   }
  817.   WHTT_UNLOCK();
  818. }
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826. // ------------------------------------------------------------
  827. // TOOL TIPS
  828. //
  829. // ajouter dans le .cpp:
  830. // remplacer les deux Wid1:: par le nom de la classe::
  831. // dans la message map, ajouter
  832. // ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  833. // dans initdialog ajouter
  834. // EnableToolTips(true);     // TOOL TIPS
  835. //
  836. // ajouter dans le .h:
  837. // char* GetTip(int id);
  838. // et en generated message map
  839. // afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
  840. BOOL Cinprogress::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
  841. {
  842.   TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
  843.   UINT nID =pNMHDR->idFrom;
  844.   if (pTTT->uFlags & TTF_IDISHWND)
  845.   {
  846.     // idFrom is actually the HWND of the tool
  847.     nID = ::GetDlgCtrlID((HWND)nID);
  848.     if(nID)
  849.     {
  850.       char* st=GetTip(nID);
  851.       if (st != "") {
  852.         pTTT->lpszText = st;
  853.         pTTT->hinst = AfxGetResourceHandle();
  854.         return(TRUE);
  855.       }
  856.     }
  857.   }
  858.   return(FALSE);
  859. }
  860. char* Cinprogress::GetTip(int ID)
  861. {
  862.   switch(ID) {
  863.     //case IDC_STOPALL: return LANG(LANG_H4); break; // "Stop the mirror","Stopper le miroir"); break;
  864.     //case IDC_hide:    return LANG(LANG_H5); break; // "Hide this window behind the system tray","Cacher la fenΩtre dans la barre systΦme"); break;
  865.     case IDC_sk0:     return LANG(LANG_H6); break; // "Click to skip a link or interrupt parsing","Clic pour sauter un lien ou interrompre"); break;
  866.     case IDC_sk1: case IDC_sk2: case IDC_sk3: case IDC_sk4:
  867.     case IDC_sk5: case IDC_sk6: case IDC_sk7: case IDC_sk8: case IDC_sk9:
  868.                       return LANG(LANG_H7); break; // "Click to skip a link","Clic pour sauter un lien"); break;
  869.                       //
  870.   }
  871.   return "";
  872. }
  873. // TOOL TIPS
  874. // ------------------------------------------------------------
  875.  
  876.  
  877.  
  878. // Appel aide
  879. void Cinprogress::OnHelpInfo2() {
  880.   (void)OnHelpInfo(NULL);
  881. }
  882.  
  883. BOOL Cinprogress::OnHelpInfo(HELPINFO* dummy) 
  884. {
  885.   //return CPropertyPage::OnHelpInfo(pHelpInfo);
  886.   HtsHelper->Help();
  887.   return true;
  888.   //AfxGetApp()->WinHelp(0,HELP_FINDER);    // Index du fichier Hlp
  889.   //return true;
  890. }
  891.  
  892.  
  893. int Cinprogress::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  894. {
  895.     if (CPropertyPage::OnCreate(lpCreateStruct) == -1)
  896.         return -1;
  897.  
  898.   // Drag&Drop
  899.   drag=new CEasyDropTarget(this);
  900.   if (drag->IsRegistered()) {
  901.     drag->SetTextCallback(wm_CEasyDropTargetCallback);
  902.   }
  903.     
  904.     return 0;
  905. }
  906.  
  907.  
  908. // Message from CEasyDropTarget
  909. LRESULT Cinprogress::DragDropText(WPARAM wParam,LPARAM lParam) {
  910.   if (lParam) {
  911.     CString st=*((CString*) lParam);
  912.     CLIPFORMAT cfFormat=wParam;
  913.     st=Wid1::TextToUrl(st,cfFormat);
  914.     if (st=="")
  915.       AfxMessageBox(LANG(LANG_DIAL11),MB_SYSTEMMODAL);
  916.     else {
  917.       CString aff=LANG(LANG_DIAL12);
  918.       if (AfxMessageBox(aff+st,MB_SYSTEMMODAL|MB_YESNO|MB_ICONQUESTION)==IDYES) {
  919.         int pause=0;
  920.         char** tab=CEasyDropTarget::StringToArray(st);
  921.         hts_addurl(tab);
  922.         if (pause=hts_setpause(-1))
  923.           hts_setpause(0);      // enlever pause
  924.         {
  925.           int i=0;
  926.           while((hts_addurl(NULL)) && (i<100)) {
  927.             Sleep(100);
  928.             i++;
  929.           }
  930.           if (!(i<100)) {
  931.             hts_resetaddurl();
  932.             AfxMessageBox(LANG(LANG_DIAL13));
  933.           }
  934.           hts_setpause(pause);      // remettre pause Θventuelle
  935.         }
  936.         CEasyDropTarget::ReleaseStringToArray(tab);
  937.         tab=NULL;
  938.       }
  939.     }
  940.   }
  941.   return 0;
  942. }
  943.  
  944. // Refresh
  945. void Cinprogress::OnTimer(UINT nIDEvent) 
  946. {
  947.   WHTT_LOCK();
  948.   if (!termine) {
  949.     if (SInfo.refresh) {
  950.       hts_is_parsing(0);        // refresh demandΘ si en mode parsing
  951.       // while(INFILLMEM_LOCKED) Sleep(10);    // attendre au cas o∙
  952.       if (!termine)
  953.         inprogress_refresh();        // on refresh!
  954.     }
  955.     SInfo.ask_refresh=1;
  956.   }
  957.   WHTT_UNLOCK();
  958.   CPropertyPage::OnTimer(nIDEvent);
  959. }
  960.  
  961. BOOL Cinprogress::DestroyWindow() 
  962. {
  963.   StopTimer();
  964.   inprogress=NULL;
  965.   delete drag;
  966.     return CPropertyPage::DestroyWindow();
  967. }
  968.  
  969. // Fin
  970.  
  971. LRESULT Cinprogress::OnEndMirror(WPARAM /* wP*/, LPARAM /*lP*/) {
  972.   //this_CSplitterFrame->SetNewView(0,1,RUNTIME_CLASS(Cinfoend));
  973.  
  974.   // Copie de trans.cpp
  975.   this_CWizTab->ModifyStyle(WS_VISIBLE,0,0);
  976.   this_CWizTab->RedrawWindow();
  977.   //
  978.   //{
  979.   //  CWizTab* tmp;
  980.   //  tmp=this_CWizTab;
  981.   this_CWizTab=this_intCWizTab;
  982.   //  this_CWizTab2=tmp;
  983.   //}
  984.   //
  985.   this_CWizTab->ModifyStyle(0,WS_VISIBLE,0);
  986.   this_CWizTab->ModifyStyle(WS_DISABLED,0,0);
  987.   this_CSplitterFrame->RedrawWindow();
  988.   // Fin de Copie de trans.cpp
  989.  
  990.   this_CWizTab->EndInProgress();
  991.   if (IsWindow(this_Cinfoend->m_hWnd))
  992.     SetDlgItemTextCP(this_Cinfoend, IDC_infoend,end_mirror_msg);
  993.  
  994.   if (hts_is_exiting() == 1) {     /* Interrupted mirror! */
  995.     char pathlog[HTS_URLMAXSIZE*2];
  996.     strcpybuff(pathlog,dialog0->GetPath());
  997.     if (strlen(pathlog)>0) {
  998.       if ((pathlog[strlen(pathlog)-1]!='/') && (pathlog[strlen(pathlog)-1]!='\\'))
  999.         strcatbuff(pathlog,"/");
  1000.     }
  1001.     // Aborted updated.. restore old cache?!
  1002.     if ( 
  1003.       fexist(fconcat(pathlog,"hts-cache/old.zip"))
  1004.       ||
  1005.       (fexist(fconcat(pathlog,"hts-cache/old.dat"))) && (fexist(fconcat(pathlog,"hts-cache/old.ndx"))) 
  1006.       ) {
  1007.       if (AfxMessageBox(LANG_F22b,MB_YESNO|MB_DEFBUTTON2) == IDYES) {
  1008.         if (fexist(fconcat(pathlog,"hts-cache/old.dat")) && fexist(fconcat(pathlog,"hts-cache/old.ndx"))) {
  1009.           if (remove(fconcat(pathlog,"hts-cache/new.dat"))) {
  1010.             AfxMessageBox(LANG_F24 );
  1011.           }
  1012.           if (remove(fconcat(pathlog,"hts-cache/new.ndx"))) {
  1013.             AfxMessageBox(LANG_F24 );
  1014.           }
  1015.         }
  1016.         if (remove(fconcat(pathlog,"hts-cache/new.lst"))) {
  1017.           AfxMessageBox(LANG_F24 );
  1018.         }
  1019.         if (fexist(fconcat(pathlog,"hts-cache/old.zip"))) {
  1020.           if (remove(fconcat(pathlog,"hts-cache/new.zip"))) {
  1021.             AfxMessageBox(LANG_F24 );
  1022.           }
  1023.         }
  1024.         remove(fconcat(pathlog,"hts-cache/new.txt"));
  1025.         rename(fconcat(pathlog,"hts-cache/old.zip"),fconcat(pathlog,"hts-cache/new.zip"));
  1026.         rename(fconcat(pathlog,"hts-cache/old.dat"),fconcat(pathlog,"hts-cache/new.dat"));
  1027.         rename(fconcat(pathlog,"hts-cache/old.ndx"),fconcat(pathlog,"hts-cache/new.ndx"));
  1028.         rename(fconcat(pathlog,"hts-cache/old.lst"),fconcat(pathlog,"hts-cache/new.lst"));
  1029.         rename(fconcat(pathlog,"hts-cache/old.txt"),fconcat(pathlog,"hts-cache/new.txt"));
  1030.       }
  1031.     }
  1032.   } else if (hts_is_exiting() == 2) {     /* No connection! */
  1033.     AfxMessageBox(LANG_F22c );
  1034.   }
  1035.   return S_OK;
  1036. }
  1037.  
  1038. BOOL Cinprogress::OnQueryCancel( ) {
  1039.   OnStopall();
  1040.   //this_CSplitterFrame->SetNewView(0,1,RUNTIME_CLASS(CDialogContainer));
  1041.   return FALSE;
  1042. }
  1043.  
  1044.  
  1045. void Cinprogress::Oninphide() 
  1046. {
  1047.   int status=IsDlgButtonChecked(IDC_inphide);
  1048.   if (status) {
  1049.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(WS_DISABLED,0);  // disabled
  1050.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(0,WS_VISIBLE);   // not visible
  1051.   } else {
  1052.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(0,WS_DISABLED);  // not disabled
  1053.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(WS_VISIBLE,0);   // visible
  1054.   }
  1055.   int i;
  1056.   for(i=0;i<NStatsBuffer;i++) {
  1057.     int j;
  1058.     for(j=0;j<5;j++) {
  1059.       if (status) {
  1060.         inprogress->element[j][i]->ModifyStyle(WS_DISABLED,0);  // disabled
  1061.         inprogress->element[j][i]->ModifyStyle(0,WS_VISIBLE);   // not visible
  1062.       } else {
  1063.         inprogress->element[j][i]->ModifyStyle(0,WS_DISABLED);  // not disabled
  1064.         inprogress->element[j][i]->ModifyStyle(WS_VISIBLE,0);   // visible
  1065.       }
  1066.     }
  1067.   }
  1068.   RedrawWindow();
  1069. }
  1070.  
  1071. BOOL Cinprogress::OnSetActive() 
  1072. {
  1073.   WHTT_LOCATION("inprogress");
  1074.     return CPropertyPage::OnSetActive();
  1075. }
  1076.